package cn.ruituo.dao;

import cn.ruituo.entity.Student;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface StudentDao {
    public List<Student> findALL();//不要了，性能差

    public int findTotal();

    public int add(Student stu);

    public int update(Student stu);

    //删除多个对象
    public int del(@Param("stus") long[] stus);

    //根据name模糊查找，startDate做enterdate的大于查询
    public List<Student> search0(@Param("sname") String name, @Param("startDate") Date startDate);

    //public List<Student> search11(Student s);
    //姓名，手机号的模糊查找，入学时间的起止查找
    public List<Student> search1(Map<String, Object> params);

    //显示年级的名称
    public List<Student> search2(@Param("sname") String name, @Param("telephone") String phone, @Param("startDate") Date startDate, @Param("endDate") Date endDate);

    public List<Student> search2_1(@Param("sname") String name, @Param("telephone") String phone, @Param("startDate") Date startDate, @Param("endDate") Date endDate);


    //本页中的数据
    public List<Student> paging(@Param("pageNo") int pageNo, @Param("pageSize") int pageSize, @Param("sname") String sname, @Param("qq") String qq, @Param("telephone") String telephone, @Param("enterStart") Date enterDateStart, @Param("enterEnd") Date enterDateEnd);

    //总数 count()
    public int pageTotal( @Param("sname") String sname, @Param("qq") String qq, @Param("telephone") String telephone, @Param("enterStart") Date enterDateStart, @Param("enterEnd") Date enterDateEnd);
    /**
     * type=1查找20岁以下的，2，查询20-30之间的，3表示查找30岁以上；
     * 其他值，表示查找birthday 为null的
     * @param type
     * @return
     */
    public List<Student> searchByAge(@Param("type") int type);

    public  List<Student> searchByOrder(@Param("cols") String[]cols,@Param("order")String orderBy,@Param("shunxu") String shunxu);
}
